home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-11-29 | 71.8 KB | 2,286 lines |
- 1 GLE
-
- CGLE is a graphics package. A file of simple commands is used to
- draw a picture, for help on the editor and keyboard keys type
- in EDIT, for help on drawing graphs type in GRAPH and for
- help on gle commands type in COM.
-
- To try out some of the examples:
- Press F3 to load a file
- Press F10 to draw the picture
- Press ESC (or ^Z, or ^X) to get back to the GLE editor.
-
- 2 Edit
-
- You are in a simple screen editor, use the arrow keys to edit the
- file and then press F2 to save the file and F10 to run gle and display
- the graph. Use F9 to enter the MENU system for defining a graph.
-
- The editor understands the following keys.
- ^K followed by the letter B for begin block,
- Y to cut the block or
- P to paste a block which you have previously cut.
- ^Y Deletes current line (PF4 on VAX)
- ^U Undeletes current line
- ^Z (or ESC) To shift up a level and to exit
- ^C Quit (^E Calls VAX EDT on the VAX)
- and the normal editing keys
- Delete, Page up, Page down
-
-
-
-
-
-
-
- If your terminal/PC lacks the normal function keys f1-f10
- then you can use GOLD (f1 or pf1) followed by
- 1 = Help
- 2 = Save
- 3 = Load
- 4 = Saveas
- 5 = Show Errors
- 9 = Graph Menu/Form
- 0 = Draw it (or ^G)
- ^Z = Exit from menu (^S Shell to DOS)
-
- 2 Graph
-
- A graph should start with BEGIN GRAPH and end with END GRAPH.
- The data to be plotted are organised into datasets.
- A dataset consists of a series of (X,Y) coordinates,
- and has a name based on the letter "d" and a number between
- 1 and 99,
-
- eg. "d1 or d4"
-
- The name dn can be used to define a default for all
- datasets. Many graph commands described below start with d
- n. This would normally be replaced by a specific dataset
- number e.g.,
-
- d3 marker diamond
-
- Up to 99 datasets may be defined.
-
- For each xaxis command there is a corresponding yaxis,
- y2axis and x2axis command for setting the top left and
- right hand axes. These commands are not explicitly
- mentioned in the following descriptions.
-
- Note: Some of the help on graph refers to the graph form menu (f9)
-
- 3 size
-
- Defines the size of the graph in cm.
- This is the size of the outside box of a graph.
-
- eg. "size 27 18" is the normal size specified for an A4 landscape page.
- That is 27cm wide and 18cm high.
-
- The actual size of the axes of the graph will be 70% of this.
-
- 3 nobox
-
- This specifies whether the graph is enclosed in an outside frame, with
- dimensions specified in your size command.
-
- 3 data
- Specifies the name of a file to read data from.
- A data file named xx.dat for two datasets looks like this (*=missing value):
-
- 1 2.7 3
- 2 5 *
- 3 7.8 7
- 4 9 4
-
- A dataset consists of a series of (X,Y) coordinates, and has a name based on
- the letter "d" and a number between 1 and 99, eg. "d1 or d4"
-
- Specify the names of datasets that should be filled with data from the file.
- eg. from the above file with 3 columns "data xx.dat d5 d6"
- Dataset d5 would then contain and d6 would contain
- 1 2.7 1 3
- 2 5 2 *
- 3 7.8 3 7
- 4 9 4 4
-
-
-
-
- If your data file has missing values you will have gaps in the graph
- unless use the nomissing parameter.
- ie. data xx.dat d6 nomissing
-
- You may specify particular columns to read data from the file -
- eg. "data xx.data d1=c4,c1"
- This would produce a graph with x values from column 4 and y values
- from column 1 (ie. the reverse of the default)
-
- If your dataset is too large to fit in memory (on the PC) you can
- specify a dataset to read it only when drawing it, in this way
- CGLE can cope with any sized dataset. eg. (d3 lstyle 2 bigfile "a.dat" )
-
- 3 position
-
- This sets the starting position for the graph.
- This is most often used when you wish to have more than one graph
- on a page.
-
- eg. "size 13.5 9"
- "amove 0 9"
-
- This produces a graph in the top left corner of an A4 landscape page.
-
- 3 fill
-
- Allows you to fill portions of the graph.
- You can fill in several different ways.
-
- "fill x1,d1" Between the xaxis and a dataset.
-
- "fill d1,x2" Between a dataset and the x2axis.
-
- "fill d1,d2" Between two datasets.
-
- "fill d1" For a closed dataset (eg. a circle)
-
- The fill intensity is from grey0 (white) to grey100 (black)
- and steps of 10 in between.
- - eg. "fill x1,d1 color grey10"
- Produces light grey shading between the xaxis and the dataset.
-
-
-
-
- The filled area can also be clipped to a region using
- the xmin, xmax, ymin, ymax qualifiers.
-
- - eg. "fill d1,d2 xmin 1 xmax 5 color blue"
-
- This sets the fill area between the 1 and the 5 values on the X axis.
-
- 4 xmin
- Sets the minimum value for the fill (this acts as a clipping boundary)
-
- 4 ymin
- Sets the minimum value for the fill (this acts as a clipping boundary)
-
- 4 xmax
- Sets the maximum value for the fill (this acts as a clipping boundary)
-
- 4 ymax
- Sets the maximum value for the fill (this acts as a clipping boundary)
-
- 3 bigfile
- See
- graph dn bigfile
-
- 3 dn
-
- The two variations of the dataset command specify which datasets
- to apply the keyword settings to,
- eg. a specific dataset "d3" or all datasets "dn".
-
- The dn command line specifies that attributes are to be applied to all
- datasets.
-
- eg. "dn smooth"
-
- The d1 to d7 command lines specify that attributes are to be applied to
- that specific dataset only.
-
- eg. "d3 lstyle 2 color blue"
-
- 4 bigfile
-
- d2 bigfile "all.dat,1,2"
-
- The bigfile option allows a dataset to be read as it is drawn,
- (rather than being completely read into memory before it is
- drawn) this means that very large datasets can be drawn on a
- PC without running out of memory. The axis minimum and maximum
- must be specified (using the command xaxis min max) unless
- the AUTOSCALE option is used, e.g.
- d2 bigfile a.dat autoscale
-
- By default the first two columns of the data file will
- be read in, but other columns may be specified.
- E.g., all.dat,3,2 would read x values from column 3 and y values
- from column 2. Or, to read the 4th dataset, specify
- the file as all.dat,1,5
-
- If the x column is specified as '0' then GLE will generate the
- x data points. E.g., 1,2,3,4,5...
-
- 4 autoscale
- This tells gle to pre-read a bigfile so that it can autoscale
- the axes. This may be much slower for a very large file but
- is the only option if you require auto-scaling.
-
- 4 line
-
- This tells GLE to draw lines between the points of the dataset.
- By default GLE will not draw lines or markers
- (You must specify one or other else you get a blank graph.)
- If your dataset has missing values GLE will not draw
- a line to the next real value.
- It just leaves a gap in the curve unless you specify nomissing in
- the data command. (d3 line nomissing)
-
- eg. "d3 line"
-
- 4 lwidth
-
- Specifies the width of the line
- This is measured in cm
- The default is .02 cm.
-
-
- 4 lstyle
-
- This specifies the line style for that dataset.
- There are 9 predefined linestyles
- eg. 1=solid line, 2=dot's, 3=dashes etc...
-
- Numbers greater than 9 are read from left to right
- with each digit being a length of black or white.
- eg. "d3 lstyle 1553"
-
- 4 marker
-
- Specifies the marker to be used for the dataset.
- There is a set of pre-defined markers (refer to Appendix A for examples)
- which can be specified by name (NOT by number).
- Markers can also be a user defined subroutine.
-
- eg. "d2 marker circle" or "d1 marker triangle"
-
- Some of the markers have a prefix -
-
- Prefix Meaning
- f Solid coloured marker
- o A circle around the marker
- w The hollow marker hides the graph line
- (none) The graph line is drawn through the marker
-
-
-
-
-
- No. Marker-Name No. Marker-Name
-
- 1 circle 15 dag
- 2 triangle 16 ddag
- 3 square 17 asterix
- 4 diamond 18 oplus
- 5 fcircle 19 ominus
- 6 ftriangle 20 otimes
- 7 fsquare 21 odot
- 8 fdiamond 22 trianglez
- 9 dot 23 diamondz
- 10 cross 24 wcircle
- 11 club 25 wtriangle
- 12 heart 26 wsquare
- 13 star 27 wdiamond
- 14 snake
-
- 4 msize
-
- Increases or decreases the size of the marker for the specified
- dataset. The size is in cm.
-
- eg. "d3 marker square msize .3"
-
- 4 smooth
-
- This will make GLE draw a smoothed line through the points.
- You can now use markers and linestyles with the smooth command.
-
- 4 smoothm
-
- Same as smooth option, but this allows a function which has
- multiple y values for a single x value (e.g. a circle).
-
- 4 xmin
-
- These commands map your dataset onto the graph's boundaries.
- Your data will be drawn as if the X axis was labelled from XMIN to XMAX
- (regardless of how the axis is actually labelled).
-
- A point in your dataset at X=10 will appear on the left
- edge of the graph with the given command.
-
- "d3 line xmin 10 xmax 50"
-
- 4 ymin
-
- These commands map your dataset onto the graph's boundaries.
- Your data will be drawn as if the Y axis was labelled from YMIN to YMAX
- (regardless of how the axis is actually labelled).
-
- A point in your dataset at Y=10 will appear on the bottom
- of the graph with the given command.
-
- "d3 line ymin 10 ymax 50"
-
- 4 xmax
-
- These commands map your dataset onto the graph's boundaries.
- Your data will be drawn as if the X axis was labelled from XMIN to XMAX
- (regardless of how the axis is actually labelled).
- A point in your dataset at X=50 will appear on the right
- edge of the graph with the given command.
-
- "d3 line xmin 10 xmax 50"
-
- 4 ymax
-
- These commands map your dataset onto the graph's boundaries.
- Your data will be drawn as if the Y axis was labelled from YMIN to YMAX
- (regardless of how the axis is actually labelled).
-
- A point in your dataset at Y=50 will appear on the top
- of the graph with the given command.
-
- "d3 line ymin 10 ymax 50"
-
- 4 err
-
- For drawing error bars on a graph the error bars can be specified as
- - an absolute value,
- eg. "d3 err .1"
-
- a percentage of the y value
- eg. "d3 err 10%"
-
- or as a dataset.
- eg. "d3 err d4"
- - The dataset d4 would contain data specifying the
- relative offset (NOT the absolute value) for the
- error bars.
-
- The up and the down error bars can be specified separately.
- eg. "d3 errup 10% errdown d2
-
- The width of the bar can be specified.
- eg. "d3 err d1 errwidth .2"
-
- There is an identical set of commands for drawing horizontal
- error bars:
- herr, herrleft, herrright, herrwidth
-
- 4 errwidth
-
- Specifies the width of error bars.
- Measured in cm.
-
- 4 key
-
- Specifies a title for that dataset.
- This will be used in an automatically generated KEY
- which will be positioned at the top-left of the graph by default.
-
- The key command can specify other features of the key
- eg "key pos <justify> nobox offset <exp> <exp>"
-
- There is a separate KEY module for more complex key's.
-
- Refer to chapter 4 of the manual for details.
-
- 4 color
-
- Specifies the colour of the line used to draw that dataset.
- Valid colours are black, white, red, green, blue,
- cyan, magenta, yellow.
- and grey10, grey20 ... grey90
- The colours are implemented as shades of grey for monochrome
- postscript output. eg grey10 = yellow
-
- 3 let
-
- This command lets you generate a dataset.-
-
- Either from scratch,
- eg. let d1=sin(x) from 1 to 20 step .4
-
- or as a function of another dataset,
- eg. let d2=d1*3.
-
- When generating a dataset from scratch (ie not using another dataset
- as a base) you MUST specify FROM nn TO nn STEP nn. (NOTE THE SPACING)
-
- eg. let d1 = sin(x) from 1 to 10 step .2
- let d2 = sqrt(d1)/3
-
-
-
-
-
- Maths Functions
- The functions available which can be used with the Let
- command are -
-
- Function Returns
- ABS(exp) absolute value of exp
- ATN(exp) arctan
- COS(exp) cosine
- EXP(exp) exponent
- FIX(exp) exponent rounded toward 0
- INT(exp) integer
- LOG(exp) Log to the base e of exponent
- LOG10(exp) Log to the base 10 of exponent
- SGN(exp) 1 if exponent is positive
- -1 if exponent is negative
- SIN(exp) sine of exponent
- SQR(exp) square of exponent
- SQRT(exp) square root of exponent
-
- 3 bar
- This is a subcommand of the normal graph module.
- This allows you to mix line and bar graphs.
- The bar command is flexible but quite complex.
- Stacked, overlapped and grouped bars are possible.
-
- The simplest bar chart is drawn by the command - bar d1
- Double bars are produced by - bar d1 d2
-
- To produce bars with no gaps between set the width and dist settings to
- the same value. - bar d1 width .5 dist .5
-
- Overlapped bars are produced similarly. The width (of the bar) is set
- greater than the dist (distance between the bars).
- eg. - bar d1 d2 width 1 dist 1.75
-
- Stacked bars are produced by drawing a graph for a dataset with the
- starting points at the values of another dataset.
- - eg. bar d1 fill grey 90
- bar d2 from d1 fill grey 20
-
-
-
- - or bar d4 color black width 3
- bar d1,d2,d3 from d4,d4,d4 color red green blue width 1 dist 1
- Without the first bar command for d4 the other bars
- would appear floating in the air. The width and dist commands are
- needed to produce the stacked bars without gaps on a base of equal
- size.
-
- 3d Bar graphs can also be drawn, this doesn't show any more
- information, but it does look nice:
-
- bar d1 3d .5 .3 side red top black
- or
- bar d1,d2 3d .5 .3 side red,green notop
- bar d3,d4 3d .5 .3 side red,green top black,white
-
- Take note of commas!!!.
-
- 4 3d
- bar d1 3d xunits yunits
- The 3d option tells GLE to draw bars with a side and top. The
- two measurements give the vector used for the receding edge of
- the bar. They are normalized to the width of the bar.
-
- 5 notop
- bar d1 3d .5 .5 notop
- Stops GLE from drawing the top of a 3d bar, this should be used
- on the lower bar of a stacked bar graph.
-
- 5 side
- bar d1,d2 3d .5 .5 side blue,green
- Specifies colours for the sides of the bars in the group.
-
- 5 top
- bar d1,d2 3d .5 .5 side blue,green top red,yellow
- Specifies colours for the tops of the bars in the group.
-
- 4 dist
-
- Specifies the distance between bars in this group.
- The distance is measured from the left hand side of one bar
- to the left hand side of the next bar.
- A distance of less than the width of a bar results in the bars overlapping.
- eg.
- "bar d1,d2 dist .2"
-
- 4 from
-
- This sets the starting point of each bar.
- It is used for creating stacked bar charts.
- Each layer of the bar chart is done with an additional bar command.
- eg.
- bar d1,d2 from d3,d4
-
- 4 width
-
- Sets the width of the bars. eg. bar d1,d2 width .3
-
- 4 fill
-
- Sets the density and colour for the inside of each bar.
- eg. "bar d1,d2 fill green,grey20"
-
- 4 color
-
- Sets the colour of the outline box for each bar.
- eg. "bar d1,d2 color green,grey20"
-
- Valid colours are black, white, red, green, blue,
- cyan, magenta, yellow.
- and grey10,grey20 ... grey90
- The colours are implemented as shades of grey for monochrome
- postscript output.
- eg. grey10 = yellow
-
- 3 xaxis
- Axis commands allow you to control the appearance of graph axes.
- A graph has two X axes (XAXIS, X2AXIS) and two Y axes (YAXIS, Y2AXIS).
- The axis qualifiers that can be used are -
- color, font, hei, lwidth
- log, min, max, nofirst, nolast
- nticks, dticks, dsubticks, grid
-
- On the Y axis the qualifier rotate can be specified.
- By default the Yaxis is labelled - s
- i
- x
- a
-
- With rotate the Yaxis is labelled - a
- x
- i
- s
- 4 base
-
- This specifies a "rule of thumb" size in cm from which GLE
- can guestimate good sizes for character height, tick length etc.
-
- 4 hei
-
- Specifies the hei of the axis tick labelling in centimetres.
-
-
- 4 color
-
- Specifies the colour of the line used to draw that dataset.
- Valid colours are black, white, red, green, blue,
- cyan, magenta, yellow.
- and grey10,grey20 ... grey90
- The colours are implemented as shades of grey for monochrome
- postscript output.
- eg. grey10 = yellow
-
- 4 font
-
- Specifies the font that will be used for labelling the axis.
- Most fonts are available in standard, bold, italic, and bold/italic.
- There are 3 families of fonts - ps (postscript), tex and pl.
-
- Name Description
-
- rm Roman
- rmb Roman Bold
- rmi Roman Italic
- ss San Serif
- ssb San Serif Bold
- ssi San Serif Italic
- tt Typewriter
-
-
-
-
-
- psagb AvanteGarde-Book
- psbd Bookman-demi
- psc Courier
- psh Helvetica
- psncsb New Century Schoolbook
- pspr Palatino Roman
- pstr Times Roman
- pszcmi ZapfChancery-MediumItalic
-
- texcmb Computer Modern Bold
- texcmr Computer Modern Roman
- texcmsy Computer Modern Symbols
-
- plcc Complex Cartographic
- plge Gothic English
- plsg Simple German
- plsym1 Symbols 1
- plsym2 Symbols 2
- plba Block Ascii
-
-
- Refer to Appendix A.2 in the manual for a full listing of
- the fonts.
-
- 4 grid
-
- This will draw lines between the x and x2axes or the y and y2 axes.
- For a full grid turn the grid on for both axes.
-
- 4 scale
-
- Scales the height of the axis tick labelling.
- This means that if you enlarge the graph the lettering
- will enlarge automatically. Whereas if you specify a HEI
- it will be an absolute size
-
- 4 lwidth
-
- Sets the width of the lines used to draw the axis and the ticks.
-
-
- This is measured in cm
- The default is .02cm
-
- 4 log
-
- Specifies labels should be done in logarithmic style,
- and that scaling of data should also be done logarithmically.
-
- (warning: correctly speaking a long straight lines should
- become curved but will not unless you use the SMOOTH option)
-
- 4 min
-
- Sets the minimum values on the xaxis.
- This will determine both
- the labelling of the axis
- and the default mapping of data onto the graph.
-
- (for x2axis and y2axis the mapping of data onto the graph
- is not affected. To change the mapping of data on to the
- graph use the Dn XMIN XMAX YMIN YMAX settings
- which control the portion of the data to be mapped for
- a specific dataset.)
-
- 4 max
-
- Sets the maximum values on the xaxis.
- This will determine both
- the labelling of the axis
- and the default mapping of data onto the graph.
-
-
- (for x2axis and y2axis the mapping of data onto the graph
- is not affected. To change the mapping of data on to the
- graph use the Dn XMIN XMAX YMIN YMAX settings
- which control the portion of the data to be mapped for
- a specific dataset.)
-
-
- 4 nofirst
-
- This switch removes the first labels from the graph. (the first label
- is often too close to the yaxis first label)
-
- 4 nolast
-
- This switch removes the last labels from the graph. (the last label is
- often too close to the yaxis first label)
-
- 4 nticks
-
- Sets the number of major ticks for that axis.
-
- 4 dticks
-
- Sets the distance between major ticks on that axis.
-
- 4 nsubticks
-
- Sets the number of minor ticks for that axis.
-
- 4 dsubticks
-
- Sets the distance between minor ticks on that axis.
-
- 4 off
-
- Turns on or off the whole axis. Labels, ticks, subticks and line.
- If you turn x2axis off then the title of the graph will dissappear
- as it is part of the axis, the only way to get a title with
- no axis is to turn the individual parts of the axis off, e.g:
-
- x2ticks off
- x2side off
- x2labels off
-
- 3 xnames
-
- This command allows you to replace the numeric labelling
- with absolutely anything. To label data taken from Monday to
- Friday, use the command -
-
- xaxis min 0 max 6 dticks 1
- xnames "" "Mon" "Tue" "Wed" "Thu" "Fri" ""
-
- Note it is essential to define a specific axis minimum,
- maximum, dticks, etc.,
- otherwise the labels may not correspond to your data
- (eg. gle could decide to start at x=1)
-
- 3 xplaces
-
- This is similar to the xnames command but it specifies a list
- of points which will be labelled on the axis.
-
- - eg. xlabels font rm hei .2 color blue
- xplaces 2 4 6 8
-
- It maybe used in conjunction with the xnames command to specify
- the labels and their position. An example with days of the week
- could be done like this
- xaxis min 0 max 6 dticks 1
- xlabels font rm hei .2 color blue
- xplaces 1 3 5
- xnames "Mon" "Wed" "Fri"
-
- This command is usually used when you want labelling that
- isn't spaced equally.
-
- 3 y2places
-
- This is similar to the y2names command but it specifies a list
- of points which should be labelled.
- The example with days of the week could be done like this
-
- y2places 1 3 5 ynames "Mon" "Wed" "Fri"
-
- This command is usually used when you want labelling that isn't spaced
- equally.
-
- 3 x2places
-
- This is similar to the x2names command but it specifies a list
- of points which will be labelled on the axis.
-
- - eg. x2labels font rm hei .2 color blue
- x2places 2 4 6 8
-
- It maybe used in conjunction with the x2names command to specify
- the labels and their position. An example with days of the week
- could be done like this
- x2axis min 0 max 6 dticks 1
- x2labels font rm hei .2 color blue
- x2places 1 3 5
- x2names "Mon" "Wed" "Fri"
-
- This command is usually used when you want labelling that
- isn't spaced equally.
-
- 3 yplaces
-
- This is similar to the ynames command but it specifies a list
- of points which should be labelled.
- The example with days of the week could be done like this
-
- yplaces 1 3 5 ynames "Mon" "Wed" "Fri"
-
- This command is usually used when you want labelling that isn't spaced
- equally.
-
-
- 3 xtitle
-
- This command gives the axis a centered title. The list of optional keywords
- allow you to specify any features of it.
-
- eg. xtitle "X AXIS TITLE"
- or. xtitle "X AXIS TITLE" lwidth .2 color blue font rmb
-
- 4 scale
- Scales the height of the title for that axis.
-
- 4 hei
- Sets the height for that title in cm.
-
- 4 dist
- Sets the distance away from the axis to draw the title
- Measured in cm.
-
- 4 color
- Sets the colour to draw the title.
- Valid colours are black, white, red, green, blue,
- cyan, magenta, yellow.
-
- The colours are implemented as shades of grey for monochrome
- postscript output.
- eg. grey10 = yellow
-
-
-
- 4 font
-
- Specifies the font that will be used for labelling the axis.
- Most fonts are available in standard, bold, italic, and bold/italic.
- There are 3 families of fonts - ps (postscript), tex and pl.
-
- Name Description
-
- rm Roman
- rmb Roman Bold
- rmi Roman Italic
- ss San Serif
- ssb San Serif Bold
- ssi San Serif Italic
- tt Typewriter
-
-
-
-
-
- psagb AvanteGarde-Book
- psbd Bookman-demi
- psc Courier
- psh Helvetica
- psncsb New Century Schoolbook
- pspr Palatino Roman
- pstr Times Roman
- pszcmi ZapfChancery-MediumItalic
-
- texcmb Computer Modern Bold
- texcmr Computer Modern Roman
- texcmsy Computer Modern Symbols
-
- plcc Complex Cartographic
- plge Gothic English
- plsg Simple German
- plsym1 Symbols 1
- plsym2 Symbols 2
- plba Block Ascii
-
-
- Refer to Appendix A.2 in the manual for a full listing of
- the fonts.
-
- 3 gle
-
- 4 loadgraph
-
- Need help already Eh?
-
- Select graph to edit an existing graph or
- select create to make a new graph.
-
-
- 3 xlabels
-
- 4 off
- This command controls whether the labelling on the axis
- is turned on or off.
-
- Used in conjunction with the subcommands you can control the
- appearance of the labels.
-
- eg. xlabels dist .05 hei .3 font rm color blue
-
- 4 dist
- Adds to the distance away from the axis that the labels are
- drawn.
-
- 4 font
-
- Specifies the font that will be used for labelling the axis.
- Most fonts are available in standard, bold, italic, and bold/italic.
- There are 3 families of fonts - ps (postscript), tex and pl.
-
- Name Description
-
- rm Roman
- rmb Roman Bold
- rmi Roman Italic
- ss San Serif
- ssb San Serif Bold
- ssi San Serif Italic
- tt Typewriter
-
-
-
-
-
- psagb AvanteGarde-Book
- psbd Bookman-demi
- psc Courier
- psh Helvetica
- psncsb New Century Schoolbook
- pspr Palatino Roman
- pstr Times Roman
- pszcmi ZapfChancery-MediumItalic
-
- texcmb Computer Modern Bold
- texcmr Computer Modern Roman
- texcmsy Computer Modern Symbols
-
- plcc Complex Cartographic
- plge Gothic English
- plsg Simple German
- plsym1 Symbols 1
- plsym2 Symbols 2
- plba Block Ascii
-
-
- Refer to Appendix A.2 in the manual for a full listing of
- the fonts.
-
-
- 4 hei
- Sets the height of the major tick labels.
- This is measured in cm.
-
- 4 color
- Sets the colour of the major tick labels.
- Valid colours are black, white, red, green, blue,
- cyan, magenta, yellow.
-
- The colours are implemented as shades of grey for monochrome
- postscript output.
- eg. grey10 = yellow
-
- 3 xside
- Sets features of the axis line itself
- (colour, line width, on/off)
-
- 4 lwidth
- Sets the line width of the axis line.
- This is measured in cm.
- The default is .02 cm.
-
- 4 off
- Turns off the axis line.
-
- 4 color
- Sets the colour of that side.
- Valid colours are black, white, red, green, blue,
- cyan, magenta, yellow.
-
- The colours are implemented as shades of grey for monochrome
- postscript output.
- eg. grey10 = yellow
-
-
- 4 lwidth
- Sets the width of the line for that side.
- This is measured in cm
- The default is .02 cm.
-
- 3 xticks
- Sets features to control the appearance of the major ticks.
- (line style, line width, length, on/off)
- eg. xticks lwidth .01 length .1 lstyle 2
-
- 4 scale
- Scales the length of the major ticks
-
- 4 length
- Sets the length of the major ticks in cm.
-
- 4 lwidth
- Sets the line width of the major ticks.
- This is measured in cm
- The default is .02 cm.
-
- 4 color
- Sets the colour of the major ticks
- Valid colours are black, white, red, green, blue,
- cyan, magenta, yellow.
-
- The colours are implemented as shades of grey for monochrome
- postscript output.
- eg. grey10 = yellow
-
-
- 3 xsubticks
- Sets features to control the appearance of the minor ticks.
- (line style, line width, length, colour, on/off)
-
- 4 scale
- Scales the length of the minor ticks
-
- 4 length
- Sets the length of the minor ticks in cm.
-
- 4 lwidth
- Sets the line width of the minor ticks.
- This is measured in cm
- The default is .02 cm.
-
- 4 color
- Sets the colour of the minor ticks
- Valid colours are black, white, red, green, blue,
- cyan, magenta, yellow.
- The colours are implemented as shades of grey for monochrome
- postscript output.
- eg. grey10 = yellow
-
-
- 3 xtra
- This is the place to put EXTRA gle commands, that is any gle graph
- command which you can't find an entry cell for.
-
- For detailed control of each axis display there are further commands.
- xside -color, lwidth, off
- xticks -lstyle, lwidth, length, off
- xsubticks -lstyle, lwidth, length, off
- eg.
- xside lwidth .05
- indicates the line width of the xaxis (only) is to be changed.
- ie. Not the ticks and associated xaxis parameters
-
- or.
- xticks length .1 width .01
- for control of the xticks display.
-
- These subcommands can be applied to the xaxis, yaxis, x2axis or y2axis.
-
- This is also where gle will put any gle graph commands that it found
- in your file that it couldn't understand.
-
- 2 Keyboard
- (see commands begin key, for help on the key module)
- Keyboard Mappings:
-
- VT100 VT200 PC Meaning
- GOLD 1 F11 F1 Help
- GOLD 2 F12 F2 Save
- GOLD 3 F13 F3 Load
- GOLD 4 F14 F4 Save-as
- GOLD 9 F9 F9 Graph-menu
- GOLD 0 F10 F10 Draw-it
- Control+Z Control+Z Control+Z Exit/Escape
- Alt+X Exit/Escape
- Control+E Control+E Calls VAX EDT
- Control+F Control+F Toggle fast/slow text
- Control+R Control+R F5 Shows errors
- Control+S Shells to DOS
-
- Supported devices: VT100, REGIS (VT125, VT240), TEK4010,
- VWS, XWindows.
-
- Supported output: PostScript, HPGL, Epson, Epson 24pin, HP
- Deskjet Paintjet.
-
- 2 Beginners
- Drawing a Line on a Page
- ------------------------
- Let's start with drawing a line on the page. GLE has to
- know what size piece of paper you are working with. You can
- tell it by giving a size command:
-
- size 18 27
-
- This specifies a piece of paper 18cm wide and 27cm high.
- Now you must define a current point by moving to somewhere
- on the page:
-
- amove 2 4
-
- The origin (0,0) is at the bottom left hand corner of the
- page. Now suppose we wish to draw a line from this point
- across 1 cm and up 2 cm:
-
- size 18 27
- amove 2 4
- rline 1 2
-
- That was a relative movement as the x and y values were
- given as distances from the current point, alternatively we
- could have used absolute coordinates:
-
- size 18 27
- amove 2 4
- aline 3 6 ! absolute.
-
- Now if you want to draw some text on this page at the
- current point you would use the text command:
-
- text Hi there
-
- So we have now constructed an entire GLE program as
- follows, with the results illustrated below:
-
- size 12 8 box
- amove 2 4
- rline 1 2
- text Hi there
-
- Drawing a Simple Graph
- ----------------------
- This section will describe how to go about drawing a simple
- graph.
-
- The following data points are contained in a file called
- TUT.DAT
-
- x y
- ----- (These top two lines do not appear in the file)
- 1 2
- 2 6
- 3 2
- 4 5
- 5 9
-
- The data is in two columns with white space separating each
- column of numbers. The following commands will draw a
- simple line graph of the data.
-
- size 6 3
- begin graph
- size 6 3
- data tut.dat
- yaxis min 0
- d1 line marker star msize .2
- end graph
-
- The first size command defines the size of the piece of
- paper which may contain several graphs. The second defines
- the size of this particular graph. The actual graph axes
- are by default 0.7 of these dimensions. The ratio can be
- changed with the vscale and hscale commands.
-
- Without the "yaxis min 0" command the yaxis would start at
- 2.0, because that is the minimum y value in the data. This
- makes the graph easier to interpret.
-
- Changing the above d1 command to:
-
- d1 line marker circle
-
- will mark each data point with a circle instead of a star.
- See appendix A for a list of other marker names.
-
- A smooth line can be drawn between the data points by
- changing the d1 command to:
-
- d1 line marker circle smooth
-
- The order of the commands is not important, except that
- circle is a parameter for the qualifier marker and
- therefore must come straight after it. E.g., d1 [marker
- circle] [line smooth] [color blue]
-
- 2 Commands
- A GLE command is a sequence of keywords and values
- separated by white space (one or more spaces or tabs). Each
- command must begin on a new line. Keywords may not be
- abbreviated, the case is not significant. All coordinates
- are expressed in centimetres from the bottom left corner of
- the page.
-
- GLE uses the concept of a current point which most commands
- use. For example, the command aline 2 3 will draw a line
- from the current point to the coordinates (2,3).
-
- The current graphics state also includes other settings
- like line width, color, font, 2d transformation matrix. All
- of these can be set with various GLE commands.
-
- 3 comment
- An "!" mark indicates the start of a comment. GLE ignores
- everything from the exclamation point to the end of the line.
-
- 3 at
- An "@" sign executes a subroutine.
- e.g.
- @mytree
-
- 3 aline
- aline x y [arrow start] [arrow end] [arrow both]
- Draws a line from the current point to the absolute
- coordinates (x,y), which then becomes the new current
- point. The arrow qualifiers are optional, they draw arrows
- at the start or end of the line, the size of the arrow is
- proportional to the current font height.
-
- 3 amove
- amove x y
- Changes the current point to the absolute coordinates
- (x,y).
-
- 3 arc
- arc radius a1 a2
- Draws an arc of a circle in the anti-clockwise direction,
- centered at the current point, of radius radius, starting
- at angle a1 and finishing at angle a2. Angles are specified
- in degrees. Zero degrees is at three o'clock and Ninety
- degrees is at twelve o'clock.
-
- arc 1.2 20 45
-
- The command narc is identical but draws the arc in the
- clockwise direction. This is important when constructing a
- path.
-
- 3 arcto
- arcto x1 y1 x2 y2 rad
- Draws a line from the current point to (x1,y1) then to
- (x2,y2) but fits an arc of radius rad joining the two
- vectors instead of a vertex at the point (x1,y1).
-
- 3 begin
- 4 block_name ... end block_name
- begin block_name ... end block_name
- There are several block structured commands in GLE. Each
- begin must have a matching end. Blocks which change the
- current graphics state (e.g. scale, rotate, clip etc) will
- restore whatever they change at the end of the block.
- Indentation is optional but should be used to make the GLE
- program easier to read.
-
- 4 box [fill pattern] [add gap] [nobox] [name xyz]
- begin box [fill pattern] [add gap] [nobox] [name xyz]
- Draws a box around everything between begin box and end
- box. The option add adds a margin of margin cm to each side
- of the box to make the box slightly larger than the area
- defined by the graphics primitives in the begin box end box
- group (to leave a gap around text for example). The option
- nobox stops the box outline from being drawn.
-
- The name option saves the coordinates of the box for later
- use with the join command.
-
- 4 clip
- begin clip
- This saves the current clipping region. A clipping region
- is an arbitrary path made from lines and curves which
- defines the area on which drawing can occur. This is used
- to undo the effect of a clipping region defined with the
- begin path command. See the example CLIP.GLE in appendix B
- at the end of the manual.
-
- 4 key
- Begin key
- position tr
- text "Green trees" marker heart fill grey 10 mscale 0.8
- text "Oranges" marker square lstyle 3 msize 0.5
- End key
- - This produces a key in the top right of the graph. The first dataset
- has the text Green trees with hearts as markers fill pattern of grey 10
- and the marker scaled to 80% of the graph markers. The second dataset
- also has the linestyle specified and the marker size is .5cm.
-
- - You can position the key with one of two commands.
- offset xcm ycm
- position tl | bl | tr | br
-
- Commands which can be used to specify aspects of the key are
- text, lstyle, marker, msize, mscale, color, fill.
-
- 4 origin
- begin origin
- This makes the current point the origin. This is good for
- subroutines or something which has been drawn using
- amove, aline. Everything between the begin origin and end
- origin can be moved as one unit. The current point is also
- saved and restored.
-
- 4 path
- begin path [stroke] [fill pattern] [clip]
- Initialises the drawing of a filled shape. All the lines
- and curves generated until the next end path command will
- be stored and then used to draw the shape. stroke draws the
- outline of the shape, fill paints the inside of the shape
- in the given colour and clip defines the shape as a clipping
- region for all future drawing. Clipping and filling will
- only work on PostScript devices.
-
- 4 rotate
- begin rotate angle
- The coordinate system is rotated anti-clockwise about the
- current point by the angle angle (in degrees). For example,
- to draw a line of text running vertically up the page (as a
- Y axis label, say), type:
-
- 4 scale
- begin scale x y
- Everything between the begin and end is scaled by the
- factors x and y. E.g., scale 2 3 would make the picture
- twice as wide and three times higher.
-
- 4 table
- begin table
- This module is an alternative to the TEXT module. It reads
- the spaces and tabs in the source file and aligns the words
- accordingly. A single space between two words is treated as
- a real space, not an alignment space.
-
- With a proportionally spaced font columns will line up on
- the left hand side but not on the right hand side. However
- with a fixed pitch font, like tt, everything will line up.
-
- 4 text
- begin text [width exp]
- This module displays multiple lines/paragraphs of text. The
- block of text is justified according to the current justify
- setting. See the set just command for a description of
- justification settings.
-
- If a width is specified the text is wrapped and justified
- to the given width. If a width is not given, each line of
- text is drawn as it appears in the file. Remember that GLE
- treats text in the same way that LaTeXdoes, so multiple
- spaces are ignored and some characters have special
- meaning. E.g, \ ^ _ & { }
-
- To include Greek characters in the middle of text use a
- backslash followed by the name of the character. E.g.,
- 3.3\Omega S would produce ``3.3OS''.
-
- To put a space between the Omega and the S add a backslash
- space at the end. E.g., 3.3\Omega\ S produces ``3.3O S''
-
- Sometimes the space control characters (e.g. \:) are also
- ignored, this may happen at the beginning of a line of
- text. In this case use the control sequence \glasswhich
- will trick GLE into thinking it isn't at the beginning of a
- line. E.g.,
-
- text \glass \:\: Indented text
-
- There are several LaTeXlike commands which can be used
- within text, they are:
-
- ^{} Superscript
- _{} Subscript
- \\ Forced Newline
- \_ Underscore character
- \, .5em (em = width of the letter `m')
- \: 1em space
- \; 2em space
- \char{22} Any character in current font
- \chardef{a}{hello} Define a character as a macro
- \def\v{hello} Defines a macro
- \movexy{2}{3} Moves the current text point
- \glass Makes move/space work on beginning of line
- \rule{2}{4} Draws a filled in box, 2cm by 4cm
- \setfont{rmb} Sets the current text font
- \sethei{.3} Sets the font height (in cm)
- \setstretch{2} Scales the quantity of glue between words
- \lineskip{.1} Sets the default distance between lines of text
- \linegap{-1} Sets the minimum required gap between lines
-
- 4 translate
- begin translate x y
- Everything between the begin and end is moved x units to
- the right and y units up.
-
- 3 bezier
- bezier x1 y1 x2 y2 x3 y3
- Draws a Bezier cubic section from the current point to the
- point (x3,y3) with Bezier cubic control points at the
- coordinates (x1,y1) and (x2,y2). For a full explanation of
- Bezier curves see the PostScript Language Reference Manual.
-
- 3 bigfile
- bigfile filename.gle
- This command reads the file one line at a time, compiles
- each line and executes it. This means it can read any sized
- file. However, complex multi-line commands cannot be used.
- Subroutines can be used but not defined, inside the
- bigfile. Note: there is also a bigfile option in the
- graphing module for large datasets.
-
- 3 box
- box x y [justify jtype] [fill color] [name xxx] [nobox]
- Draws a box, of width x and height y, with its bottom left
- corner at the current point. If the justify option is used,
- the box will be positioned relative to the specified point.
- E.g., TL = top left, CC = center center, BL = bottom left,
- CENTRE = bottom centre, RIGHT = bottom right, LEFT = bottom
- left. See set just for a description of justification
- settings.
-
- If a fill pattern is specified, the box will be filled.
- Remember that white fill is different from no fill pattern
- - white fill will erase anything that was inside the box.
-
- 3 circle
- circle radius [fill pattern]
- Draws a circle at the current point, with radius x. If
- a fill pattern is specified the circle will be filled.
-
- 3 closepath
- closepath
- Joins the beginning of a line to the end of a line i.e.,
- it does an aline to the end of the last amove.
-
- 3 curve
- curve ix iy [ x1 y1 x y x y ... xn yn] ex ey
- Draws a curve starting at the current point and passing
- through the points (x1,y1) (xn,yn), with an initial slope
- of (ix,iy) to (x1,y1) and a final slope of (ex,ey). All the
- vectors are relative movements from the vector before.
-
- 3 define
- define marker markername subroutine-name
- This defines a new marker called markername which will call
- the subroutine subroutine-name whenever it is used. It
- passes two parameters, the first is the requested size of
- the marker and the second is a value from a secondary
- dataset which can be used to vary size or rotation of a
- marker for each point plotted.
-
- 3 for
- for var = exp1 to exp2 [step exp3] command [...] next var
- The for ... next structure lets you repeat a block of
- statements a number of times.
-
- GLE sets var equal to exp1 and then repeats the following
- steps.
-
- If var is greater than exp2 then GLE commands are skipped
- until the line after the next statement.
-
- The value exp3 is added to var.
-
- The statements between the for and next statement are
- executed. itemize
-
- If exp1 is greater than exp2 then the loop is not executed.
-
- 3 fopen
- fopen "myfile.dat" chan-name read|write
- Opens a data file for read or write and associates a channel name
- with it, e.g.
-
- fopen "a.dat" inchan read
- fopen "b.dat" outchan write
- until feof(inchan)
- fread inchan x y z
- rline x y
- fwrite outchan "In reverse " z y x
- fwriteln outchan " Total " x+y+z
- next
- fclose inchan
- fclose outchan
-
- 3 fclose
- fclose chan-name
- Closes a channel which has been opened using fopen.
-
- 3 fread
- fread chan-name variable-list
- Reads data from a file and places it in the variables. e.g.
-
- fread inchan i j x y z
-
- freadln is identical except that after reading the variables it
- will then skip an extra numbers on the end of the line.
-
- 3 fwrite
- fwrite chan-name expression-list
- Writes the results of the string and numeric expressions
- out to the channel which must have been opened using fopen.
-
- fwriteln prints a newline character after printing the
- numbers.
-
- 3 grestore
- grestore
- Restores the most recently saved graphics state. This is
- the simplest way to restore complicated transformations
- such as rotations and translations. It must be paired with
- a previous gsave command.
-
- 3 gsave
- gsave
- Saves the current graphics transformation matrix and the
- current point and the current colour, font etc.
-
- 3 if
- if expression then command [...] else command [...] end if
- If expression evaluates to true, then execution continues
- with the statements up to the corresponding else, otherwise
- the statements following the else and up to the
- corresponding end if are executed.
-
- amove 3 3
- if xpos()=3 then
- text We are at x=3
- else
- text We are elsewhere
- end if
-
- Note: end if is not spelt endif.
-
- 3 include
- include filename
- The commands in filename are read just as if they were in
- the current GLE file. With a large include file GLE may run
- out of memory. If this happens, use the bigfile command
- instead of include. Note: there is also a bigfile option in
- the graphing module.
-
- 3 join
- join object1.just sep object2.just
- Draws a line between two named objects. An object is simply
- a point or a box which was given a name when it was drawn.
-
- The justify qualifiers are the standard GLE justification
- abbreviations (e.g. TL=top left, see set just for details)
-
- If sep is written as -, a line is drawn between the named
- objects e.g.
-
- join fred.tr - mary.tl
-
- Arrow heads can be included at both ends of the line by
- writing sep as <->. Single arrow heads are produced by <-
- and ->. Note that sep must be separated from object1.just
- and object2.just by white space.
-
- If the justification qualifiers are omitted, a line will be
- drawn between the centres of the two objects (clipped at
- the edges of the rectangles which define the objects).
-
- See Chapter 5 for an example of joining objects.
-
- 3 marker
- marker marker-name [ scale-factor]
- Draws marker marker-name at the current point. The size of
- the marker is proportional to the current font size, scaled
- by the value of scale-factor if present. Markers are
- referred to by name, eg. square, diamond, triangle and
- fcircle. Markers beginning with the letter f are usually
- filled variants. Markers beginning with w are filled with
- white so lines are not visible through the marker. For a
- complete list of markers refer to Appendix A.1.
-
- 3 defmarker
- defmarker mname fontname char_num scale dx dy
- This command defines a new marker, from any font, it is
- automatically centered but can be adjusted using dx,dy.
- e.g.
- defmarker hand pszd 43 1 0 0
-
- 3 postscript
- postscript filename.eps width-exp height-exp
- Includes an encapsulated postscript file into a GLE
- picture, the postscript picture will be scaled up or down
- to fit the width given. On the screen you will just see a
- rectangle.
-
- Only the width-exp is used to scale the picture so that the
- aspect ratio is maintained. The height is only used to
- display a rectangle of the right size on the screen.
-
- 3 rbezier
- rbezier x1 y1 x2 y2 x3 y3
- This command is identical to the BEZIER command except that
- the points are all relative to the current point.
-
- 3 return
- return exp
- The return command is used inside subroutines to return a
- value.
-
- 3 reverse
- reverse
- Reverses the direction of the current path. This is used
- when filling multiple paths in order that the Non-Zero
- Winding Rule will know which part of the path is `inside'.
-
- With the Non-Zero Winding Rule an imaginary line is drawn
- through the object. Every time a line of the object crosses
- it from left to right, one is added to the counter; every
- time a line of the object crosses it from right to left,
- one is subtracted from the counter. Everywhere the counter
- is non-zero is considered to be the `inside' of the drawing
- and is filled.
-
- 3 rline
- rline x y [arrow end] [arrow start] [arrow both]
- Draws a line from the current point to the relative
- coordinates (x,y), which then become the new current point.
- If the current point is (5,5) then rline 3 -2 is equivalent
- to aline 8 3. The optional qualifiers on the end of the
- command will draw arrows at one or both ends of the line,
- the size of the arrow head is proportional to the current
- font size.
-
- 3 rmove
- rmove x y
- Changes the current point to the relative coordinate (x,y).
- If the current point is (5,5) then rmove 3 -2 is equivalent
- to amove 8 3.
-
- 3 save
- save objectname
- This command saves a point for later use with the join
- command.
-
- 3 set
-
- 4 cap
- set cap butt | round | square
- Defines what happens at the end of a wide line.
-
- 4 color
- set color col
- Sets the current colour for all future drawing operations.
- There are several pre-defined colours which can be specified
- by name.
-
- black, white, red, green, blue, cyan, magenta, yellow,
- grey10, grey20 ... grey90, shade1 ... shade5, grid1 ...
- grid5
-
- It is also possible to specify a grey scale as an
- expression with 0.0 = black and 1.0 = white.
-
- 4 dashlen
- set dashlen dashlen-exp
- Sets the length of the smallest dash used for the line
- styles. This command MUST come before the set lstyle
- command. This may be needed when scaling a drawing by a
- large factor.
-
- 4 font
- set font font-name
- Sets the current font to font-name. Valid font-names are
- listed in Appendix A.2.
-
- There are three types of font: PostScript, LaTeXand
- Plotter. They will all work on any device, however
- LaTeXfonts are drawn in outline on a plotter, and so may
- not look very nice. PostScript fonts will be emulated by
- LaTeXfonts on non-PostScript printers.
-
- 4 fontlwidth
- set fontlwidth line-width
- This sets the width of lines to be used to draw the stroked
- (Plotter fonts) on a PostScript printer. This has a great
- effect on their appearance.
-
- 4 hei
- set hei character-size
- Sets the height of text. For historical reasons, concerning
- lead type and printing conventions, a height of 10cm
- actually results in capital letters about 6.5cm tall.
-
- 4 join
- set join mitre | round | bevel
- Defines how two wide lines will be joined together. With
- mitre, the outside edges of the join are extended to a
- point and then chopped off at a certain distance from the
- intersection of the two lines. With round, a curve is drawn
- between the outside edges.
-
- 4 just
- set just left | center | right | tl | etc...
-
- Sets the justification which will be used for text
- commands.
-
- 4 lstyle
- set lstyle line-style
- Sets the current line style to line style number
- line-style. There are 9 predefined line styles (1--9). When
- a line style is given with more than one digit the first
- digit is read as a run length in black, the second a run
- length in white, the third a run length in black, etc.
-
- 4 lwidth
- set lwidth line-width
- Sets the width of lines to line-width cm. A value of zero
- will result in the device default of about 0.02 cm, so a
- lwidth of .0001 gives a thinner line than an lwidth of 0.
-
- 3 sub
- sub sub-name parameter1 parameter2 etc
- Defines a subroutine. The end of the subroutine is denoted
- with end sub. Subroutines must be defined before they are
- used.
-
- Subroutines can be called inside any GLE expression, and
- can also return values. The parameters of a subroutine
- become local variables. Subroutines are reentrant.
-
- sub tree x y a$
- amove x y
- rline 0 1
- write a$
- return x/y
- end sub
- @tree 2 4 "mytree" (Normal call to subroutine)
- slope = tree(2,4,"mytree") (Using subroutine in an expression)
-
- 3 text
- text unquoted-text-string
- This is the simplest command for drawing text. The current
- point is unmodified after the text is drawn so following
- one text command with another will result in the second
- line of text being drawn on top of the first. To generate
- multiple lines of text, use the begin text end text
- construct.
-
- text "Hi, how's tricks", said Jack!
-
- 3 write
- write string$
- This command is similar to text except that it expects a
- quoted string, string variable, or string expression as a
- parameter.
-
- The built in functions sqrt() and time$() are described in
- appendix A.3.
-
- 3 expressions
- Wherever GLE is expecting a number it can be replaced with
- an expression. For example
-
- rline 3 2
-
- and
-
- rline 9/3 sqrt(4)
-
- will produce the same result.
-
- An expression in GLE is delimited by white space, so it may
- not contain any spaces - ` rline 3*3 2' is valid but `
- rline 3 * 3 2' will not work.
-
- Or ` let d2 = 3+sin(d1)' will work and ` let d2= 3 +
- sin(d1) ' won't.
-
- Expressions may contain numbers, arithmetic operators ( +,
- -, *, /, ^(to the power of)), relational operators ( >, <,
- =>, <=, =, <>) boolean operators ( AND, OR), variables and
- built-in functions.
-
- When GLE is expecting a colour or marker name (like `green'
- or `circle') it can be given a string variable, or an
- expression enclosed in braces).
-
- GLE provides a large number of built in functions, these
- are listed in Appendix A.3.
-
- 3 functions
- xg(), yg()
- With these functions it is possible to move to a position
- on a graph using the graph's axis units. To draw a filled
- box on a graph, at position x=948, y=.004 measured on the
- graph axis:
-
- begin graph
- xaxis min 100 max 2000
- yaxis min -.01 max .01
- ...
- end graph
- amove xg(948) yg(.004)
- box 2 2 fill grey10
-
- xend(), yend()
- These functions return the end point of the last thing
- drawn. This is of particular interest when drawing text.
-
- text abc
- set color blue
- text def
-
- This would draw the def on top of the abc. To draw the def
- immediately following the abc simply do the following (Note
- that absolute move is used, not relative move):
-
- xpos(), ypos()
- Returns the current x and y points.
-
-
-
- 3 offset
- offset x-exp y-exp
- Specifies the offset in cm from the current point to the
- bottom left hand corner of the graph. This command should
- be on a line of its own.
-
- 3 position
- position justify-exp
- This is an alternative to the OFFSET command. It allows you
- to specify a position on the graph, e.g., tl = top left.
- This command should be on a line of its own. See set just
- for a list of justify settings.
-
- 3 text
- text str-exp
- The text which will be displayed on the end of the line.
-
- 3 lstyle
- lstyle style-num
- The line style which will be used for the short line drawn
- in the key.
-
- 3 marker
- marker marker-name
- The marker which will be used for that line of the key.
-
- See GLE GRAPH MDATA for information on how to define a
- subroutine as a marker.
-
- 3 mdata
- This allows you to pass an extra parameter to a subroutine which
- has been defined as a marker.
-
- In this example boxes of different sizes would be drawn on
- each point on the graph.
-
- sub mark_sub1 mysize
- gsave ! save font and x,y
- box mysize mysize justify cc
- grestore ! restores font and x,y
- end sub
- define marker myname mark_sub1
-
- The second parameter is supplied using the MDATA command
- when drawing a graph, this gives the marker subroutine a
- value from another dataset to use to draw the marker. For
- example the marker could vary in size, or angle, with every
- one plotted.
- d3 MARKER myname MDATA d4
-
- 3 msize
- msize exp
- Specifies the size of the markers in cm.
-
- 3 mscale
- mscale exp
- Specifies how much to scale the size of the marker. E.g.,
- 0.5 would produce a marker half as big as normal.
-
- 3 color
- color color-name
- The colour of the text, line and marker.
-
- 3 hei
- hei cm-exp
- This sets the height of the text used to draw the key. The
- key will change in size to fit around the text. If you omit
- this command the current font size is used.
-
- 3 fill
- fill fill-pattern
- The fill pattern used in that line of the key.
-
-
- 2 Color
- Internally GLE treats colour and fill identically, they are
- simply an intensity of Red, Green and Blue. Each of the
- predefined colour names (yellow,grey20,orange,red) simply
- define the ratio of red, green and blue.
-
- There are two ways to use variables to show colour, one is
- for shades of grey:
-
- for i = 0 to 10
- box 3 .2 fill (i/10)
- rmove 0 .2
- next i
-
- The other is for passing a colour name as a variable:
-
- sub stick c$
- box .2 2 fill c$
- end sub
- @stick "green"
-
- Remember a fill pattern completely obscures what is behind
- it, so the following command would produce a box with a
- shadow:
-
- amove 4 4
- box 3 2 fill grey10
- rmove -.1 .1
- box 3 2 fill white
- rmove .4 .4
- text hello
-
- 2 Devices
- GLE supports the following devices.
-
- Interactive: IBM/PC (BGI), VT100, REGIS (VT125, VT240),
- TEK4010, VWS, XWindows.
-
- Output: PostScript, HPGL, EPSON, EPSON 24pin, HP Deskjet.
-
- 3 Screen
- Remember that what you see on the screen isn't always what
- you will get on the printer. For example filled regions
- will not be filled, and some characters may not look right.
-
- After pressing F10 and drawing the graph it can be
- annotated by using the mouse (or arrow keys) to draw lines,
- text and boxes. To draw lines simply click on the points of
- the line, use the right hand mouse button to `pick up' the
- pen.
-
- To draw text press the letter `t' and then click on where
- you would like the text to be drawn.
-
- All movements are rounded to the grid size settings which
- are 1.0cm, 0.1cm, 0.01cm etc.
-
- The height and colour of the text/lines is determined by the
- current settings at the end of the GLE file.
-
- If there is no mouse driver loaded then a cross-hair will
- appear and it can be moved around using the arrow keys.
- Press `c' to click, instead of the mouse button.
-
- 4 SuperVGA
- To use a SuperVGA card you first need to get a BGI
- driver that supports your card. From anonymous FTP
- you can get svgabgi3.zip:
- ftp wuarchive.wustl.edu
- ftp> user anonymous
- ftp> (mail ident)
- ftp> cd /mirrors/msdos/borland
- ftp> binary
- ftp> get svgabgi3.zip
- ftp> quit
-
- Then unzip it, decide which driver will match your SVGA card
- and copy that driver into \GLE\EXE
-
- c:> pkunzip svgabgi3.zip
- c:> type readme.
- c:> copy svga16.bgi \gle\exe
-
- Define an environment variable to tell gle about this driver
- and which mode to use. (put this line in your autoexec.bat)
-
- c:> set gle_addbgi=4.svga16
-
- 3 PostScript
- To print a GLE file to the laser printer type:
-
- $ cgle myfile /print
-
- or on a PC:
-
- C:\GLE> psgle myfile
- C:\GLE> print myfile.ps
-
- or on Unix:
- gle myfile -dps (normal)
- gle myfile -deps (Encapsulated Postscript)
- gle myfile -dps -addd (Normal with ^D characters)
-
- The postscript drivers for GLE will automatically flip a
- picture to best fit onto the page, e.g. a wide graph (as
- defined by the size command at the top) will be drawn in
- landscape mode and a tall thin graph will be drawn in
- portrait mode.
-
- To produce an .eps file on a VAX for inclusion in LaTeX or
- WordPerfect you would type:
-
- $ cgle myfile /dev=eps
-
- On a PC you would type:
-
- C:\GLE> psgle myfile /eps
- (this creates myfile.eps, not myfile.ps)
-
- Inside your LaTeX document use the LaTeX command:
-
- \graphin{myfile.eps}{12.0cm}{3.0cm}{1.0}
-
- The width and height are used by LaTeX to reserve enough
- space for the drawing and the last parameter is a scale
- factor.
-
- The laser printer driver will draw all zero width lines
- .02cm wide for any line width equal to zero, but if an
- lwidth is greater than zero and less than or equal to .0001
- then it will use a line width of 1 pixel. Without this it
- would be impossible to specify a line width that didn't
- occasionally get rounded to 2 pixels.
-
- 3 TEK4010
- This driver allows initialization sequences to be defined
- with the symbols TEK_OPEN and TEK_CLOSE.
-
- On a VAX this is normally done by CGLECMD.COM so that when
- you specify /DEV=V550 the assignments are done for you.
- (V550 = Visual 550)
-
- 3 HPGL
- This driver allows initialization sequences to be defined
- in the symbols HPGL_OPEN and HPGL_CLOSE. On the PC use
- environment variables and on the VAX use DCL symbols. Also
- HPGL_WIDTH and HPGL_HEIGHT can be defined for non A3
- plotters.
-
- HPGL_ADDX, HPGL_ADDY are margins for the lower left hand
- corner of the page, defaults are .9cm and 1.5cm
-
- On a VAX this is normally done by CGLECMD.COM so that when
- you specify /DEV=HPA4 the assignments are done for you.
-
- The HPGL driver assigns the following colours to pen
- numbers:
-
- 1=black, 2=red, 3=green, 4=blue, 5=magenta, 6=white
-
- 3 dotmatrix
- GLE supports the EPSON 8 and 24 pin and HP deskjet/laserjet
- printers. To support bitmap devices which require a large
- amount of memory GLE first writes a device independent file
- OUT.DVI, then the appropriate bitmap driver for your
- printer will read the OUT.DVI file and create a bitmap
- which it then prints to LPT1:
-
- C:> dvigle myfile (produces OUT.DVI)
- C:> dviprint -depson (creates bitmap and prints to LPT1:)
-
- The output options are:
-
- Usage: dviprint [-depson | -dlj] [-old] [-hires] [-debug] [-output xx.prt]
- -depson To produce output for epson printers
- -dwp To add tiff image to wp .eps file
- -dlj To produce output for HP LaserJet printers
- -dpj To produce output for HP PaintJet printers
- -over Overhead transparency mode for PaintJet
- -old For old HP Laser Jet printers (no compression)
- -hires Uses high resolution for that printer (slower)
- -wide If your printer has a wide carriage
- -noflip Disable's auto flipping
- -nosquash Tries to print it full size
- -compress Force internal bitmap compression (slow,saves memory)
- -noff No form feed
- -debug Prints debug messages
- -out x.x Prints output to file instead of printer port
-
- The high resolution drivers (dviep24, dvilj300) are
- significantly slower than the low resolution drivers so
- would only be used for final output.
-
- 2 Fonts
- font-name Description
- rm Roman
- rmb Roman Bold
- rmi Roman Italic
- ss San Serif
- ssb San Serif Bold
- ssi San Serif Italic
- tt Typewriter
- ttb Typewriter Bold
- tti Typewriter Italic
-
- font-name Description
- psagb AvantGarde-Book
- psagbo AvantGarde-BookOblique
- psbd Bookman-Demi
- psbdi Bookman-DemiItalic
- psbl Bookman-Light
- psbli Bookman-LightItalic
- psc Courier
- pscb Courier-Bold
- pscbo Courier-BoldOblique
- psco Courier-Oblique
- psh Helvetica
- pshb Helvetica-Bold
- pshbo Helvetica-BoldOblique
- psho Helvetica-Oblique
- psncsb NewCenturySchlbk-Bold
- psncsi NewCenturySchlbk-Italic
- psncsr NewCenturySchlbk-Roman
- pspr Palatino-Roman
- pstr Times-Roman
- psti Times-Italic
- pstb Times-Bold
- pstbi Times-BoldItalic
- pszcmi ZapfChancery-MediumItalic
- pszd ZapfDingbats
- pssym Symbol
-
- font-name Description
- texcmb Computer Modern Bold
- texcmex Computer Modern Extensible
- texcmitt Computer Modern Italic Typewriter
- texcmmi Computer Modern Maths Italic
- texcmr Computer Modern Roman
- texcmss Computer Modern Sans Serif
- texcmssb Computer Modern Sans Serif Bold
- texcmssi Computer Modern Sans Serif Italic
- texcmsy Computer Modern Symbol
- texcmti Computer Modern Text Italic
- texcmtt Computer Modern Typewriter Text
-
- font-name Description
- plcc Complex Cartographic
- plcg Complex Gothic
- plci Complex Italic
- plcr Complex Roman
- plcs Complex Script
- pldr Duplex Roman
- plge Gothic English
- plgg Gothic German
- plgi Gothic Italian
- plsa Simplex Ascii
- plsg Simplex German
- plsr Simplex Roman
- plss Simplex Script
- plsym1 Symbols one
- plsym2 Symbols two
- plti Triplex Italic
- pltr Triplex Roman
- plba Block Ascii
-
- Fonts (font mapping)
- By default the generic fonts (rm, rmb, ss, tt etc) will all
- map to PLSR (plotter simplex roman) on BITMAP and HPGL
- drivers. To make this happen on other drivers put the
- command plotter fonts immediately after the size command at
- the top of the GLE file.
-
- A typical result of this change in fonts is that something
- that lines up on the screen will not line up when printed
- to an EPSON printer. If this happens then use the plotter
- fonts command.
-
- If a character is missing from a font, or isn't the
- particular variation you like, you can define a character
- to be from a different font in this way:
-
- \chardef{%}{{\setfont{texcmr}\char{37}}}
- \chardef{[}{{\setfont{texcmr}\char{91}}}
- \chardef{]}{{\setfont{texcmr}\char{93}}}
-
- On the PC some fonts may not be installed to save disk
- space. When one of the missing fonts is called for, a
- replacement font will be displayed, this may look terrible
- and some special characters may be completely wrong.
-
- More importantly if you use a font which does not have its
- font metric file installed (e.g. C:/GLE/FONTS/PLSR.FMT)
- then the PostScript driver will space the characters
- incorrectly. This can be fixed by extracting that
- particular metric file from the distribution file
- CGLE_FVE.ZIP using PKUNZIP.
-
- 2 Clip
- It is possible to set up arbitrary clipping regions. To do
- this draw a shape and make it into a path by putting a
- begin path clip ... end path, around it. Then draw the
- things to be clipped by that region. To clear a clipping
- path surround the whole section of GLE commands with begin
- clip ... end clip
-
- Characters can be used to make up clipping paths, but only
- the PostScript fonts will currently work for this purpose.
-
- size 10 5
- begin clip ! Save current clipping path
- begin path clip stroke ! Define new clipping region
- amove 2 2
- box 3 3
- amove 6 2
- box 3 3
- end path
- amove 2 2
- set hei 3
- text Here is clipped text
- end clip ! Restore original clipping path
-
- 2 Variables
- GLE has two types of variables, floating point and string.
- String variables always end with a dollar sign. A string
- variable contains text like ``Hello this is text'', a
- floating point variable can only contain numbers like
- 1234.234.
-
- name$ = "Joe"
- height = 6.5 ! Height of person
- shoe = .05 ! shoe adds to height of person
- amove 1 1
- box .2 height+shoe
- write name$
-
- 2 Functions
- Function Name Returns
- TIME$() current time e.g. ``11:44:27''
- DATE$() current date e.g. ``Tue Apr 09 1991''
- LEFT$(str$,exp) left exp characters of str$
- RIGHT$(str$,exp) rest of str$ starting at exp
- SEG$(str$,exp1,exp2) str$ from exp1 to exp2
- NUM$(exp) string representation of exp
- NUM1$(exp) as above but with no spaces
- VAL(str$) value of the string str$
- POS(str1$,str2$,exp) position of str2$ in str1$ from exp
- LEN(str$) the length of str$
-
- Function Name Returns
- ABS(exp) absolute value of expression
- ATN(exp) arctan
- COS(exp) cosine
- EXP(exp) exponent
- FIX(exp) exp rounded towards 0
- INT(exp) integer part of exp
- LOG(exp) log to base e of exp
- LOG10(exp) log to base 10 of exp
- SGN(exp) returns 1 or -1.
- SIN(exp) sine of exp
- SQR(exp) exp squared
- TAN(exp) tangent of exp
- NOT(exp) logical not of exp
- RND(exp) random number from seed exp
- SQRT(exp) square root of exp
-
- Function Name Returns
- XEND() the x end point of a text string when drawn
- YEND() the y end point of a text string when drawn
- XPOS() the current x point
- YPOS() the current y point
- TWIDTH(str$) the width of str$ assuming current font, size
- THEIGHT(str$) the height of str$ assuming current font, size
- TDEPTH(str$) the depth of str$
- XG(xexp) converts units of last graph to abs cm.
- YG(yexp) converts units of last graph to abs cm. tabular
-
-
- 2 Changehelp
- If you change the help file, (graph.hlp) then you must re-create
- the help index file GRAPH.IDX, to do this simply type in
- C:\GLE> makeidx
-
- 2 Usage
- The command syntax depends largely on your system (UNIX,VMS,PC)
- but most of these qualifiers should work:
-
- /trace Prints each line as it is executed
- /debug For debugging purposes, use at own risk
- /drawit To draw on screen directly from DOS.
- /nod Don't add ^D's to postscript file.
- /addd Do add ^D's to postscript file.
- /eps Create Encapuslated Postscript file.
- /nomaxpath Don't limit size of complex path's
- /out=a.ps Specify output file (depends on device)
-
- e.g.
- (VAX) $ cgle test /dev=ps /trace
-
- (PC) C:> psgle test /eps
-
- unix> gle test -dps /addd
-
- Environment variables (PC):
-
- To stop GLE from adding ^D characters to PostScript files use:
-
- C:> set gle_nocontrold=true
-
- If you want to put your BGI files in a different directory
- to GLE\EXE then:
-
- C:> set gle_bgi=c:\tc\bgi
-
- If you want to use a non standard BGI driver then define:
-
- C:> set gle_addbgi=4.svga256 (mode,filename)
-
- 2 (end)
- 1 (end)
-